package org.geeks.gsmybatis.biz.sqlprovider;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import org.geeks.gsmybatis.biz.enums.Gender;

import com.google.common.base.Strings;

/**
 * 用户SqlProvider
 * 
 * @author geek-s
 *
 */
public class UserSqlProvider {

	/**
	 * 根据条件查询
	 * 
	 * @param name
	 *            姓名
	 * @param gender
	 *            性别
	 * @param age
	 *            年龄
	 * @return 用户列表
	 */
	public static String selectByConditionBySqlProvider(@Param("name") String name, @Param("gender") Gender gender,
			@Param("age") Integer age) {
		return new SQL() {
			{
				SELECT("*");
				FROM("user");
				if (!Strings.isNullOrEmpty(name)) {
					WHERE("name like #{name}");
				}
				if (gender != null) {
					WHERE("gender = " + gender.ordinal());
				}
				if (age != null) {
					WHERE("age = #{age}");
				}
			}
		}.toString();
	}

}
